From edb9531263e1698343ef3f8743d23b8044979341 Mon Sep 17 00:00:00 2001 From: Jan Beulich Date: Fri, 2 Oct 2015 13:41:24 +0200 Subject: [PATCH] x86/p2m-pt: use pre-calculated IOMMU flags ... instead of recalculating them. At once clean up formatting of the touched code and drop a stray loop local variable shadowing a function scope one. Signed-off-by: Jan Beulich Reviewed-by: George Dunlap Reviewed-by: Andrew Cooper --- xen/arch/x86/mm/p2m-pt.c | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/xen/arch/x86/mm/p2m-pt.c b/xen/arch/x86/mm/p2m-pt.c index 9621eb1ce3..28a31ee9ad 100644 --- a/xen/arch/x86/mm/p2m-pt.c +++ b/xen/arch/x86/mm/p2m-pt.c @@ -673,17 +673,13 @@ p2m_pt_set_entry(struct p2m_domain *p2m, unsigned long gfn, mfn_t mfn, if ( iommu_old_flags ) amd_iommu_flush_pages(p2m->domain, gfn, page_order); } + else if ( iommu_pte_flags ) + for ( i = 0; i < (1UL << page_order); i++ ) + iommu_map_page(p2m->domain, gfn + i, mfn_x(mfn) + i, + iommu_pte_flags); else - { - unsigned int flags = p2m_get_iommu_flags(p2mt); - - if ( flags != 0 ) - for ( i = 0; i < (1UL << page_order); i++ ) - iommu_map_page(p2m->domain, gfn+i, mfn_x(mfn)+i, flags); - else - for ( int i = 0; i < (1UL << page_order); i++ ) - iommu_unmap_page(p2m->domain, gfn+i); - } + for ( i = 0; i < (1UL << page_order); i++ ) + iommu_unmap_page(p2m->domain, gfn + i); } /* -- 2.30.2